﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Infinity.Types
{
	/// <summary>
	/// It represents undefined value of variables.
	/// For example:
	/// procedure f()
	///		var a; //a.GetType() == typeof(Any)
	/// begin
	///		a := 10; //a.GetType() == typeof(int)
	/// end;
	/// </summary>
	public sealed class Any
	{
		private static readonly Any m_Undefined = new Any();

		public static Any Undefined
		{
			get { return m_Undefined; }
		}

		public object Value { get; set; }
	}
}